package com.wwl.cms.utils.designModeTest.template;

/**
 * @author wwl
 * @version 1.0
 * @date 2021/9/8 20:07
 * @description:
 */
public abstract class SoyaMilk {
    //模板方法，make，模板方法可以做成final，不让子类去覆盖
    final void make() {
        select();
        if (constomerWant()){
            addCondiments();
        }
        soak();
        beat();
    }
    //选材料
    void select(){
        System.out.println("第一步：选出好的新鲜黄豆");
    }
    //添加不同的配料，抽象方法，子类具体实现
    abstract  void  addCondiments();

    void soak(){
        System.out.println("第三步,黄豆和配料考试浸泡，需要三小时");
    }
    void beat(){
        System.out.println("第四步：黄豆和配料放到豆浆机去打碎！");
    }
    //钩子方法
    Boolean constomerWant(){
        return  true;
    }
}
